AWS Lambdaの関数 URL(Function URLs)を試してみた
AWSチームのすずきりょうです。
2022年4月5日、AWS Lambda のアップデートでサポートされた、AWS Lambda の関数URLを試してみました。
設定
Lambdaの設定項目として、「関数URL」が追加されました。
認証タイプとして「AWS_IAM」、「NONE」の指定が可能です。
今回は「NONE」、パブリックな関数URLを作成しました。
設定した関数URLは「関数の概要」で確認可能です。
関数URLを設定した関数は、リソースベースのポリシーが追加されます。
認証タイプ「NONE」、パブリックに設定した関数は、ポリシー「FunctionURLAllowPublicAccess」が生成されました。
検証
ソース
Node.js 12.x のランタイムを利用、HTTPレスポンスコード(200)と、Body(Hello world)を戻す関数を作成しました。
console.log('Loading function'); const os = require("os"); exports.handler = async (event) => { return { statusCode: 200, body: 'Hello world.' + os.EOL }; };
実行
「curl」を利用し、パブリックに設定した関数URLの動作が確認できました。
$ curl https://xxxxxxxx.lambda-url.ap-northeast-1.on.aws -i HTTP/1.1 200 OK Date: Thu, 07 Apr 2022 02:29:16 GMT Content-Type: application/json Content-Length: 13 Connection: keep-alive x-amzn-RequestId: xxxx-xxxx-xxxx-xxxx-xxxx X-Amzn-Trace-Id: root=1-xxxx-xxxx;sampled=0 Hello world.
まとめ
従来、HTTP(s)経由で Lambda関数を実行するためには、API Gateway を経由する必要がありましたが、 関数 URL(Function URLs) がサポートされた事で、API Gatewayを省略した利用が可能になりました。
パブリックに公開するAPIや、簡易な認証実装でも差し支えの無いAPIを AWSLambdaで実装する場合には、今回リリースされた 関数 URL(Function URLs) をお試しください。